The size of self is set to Bins.Max+1 provided that sufficient memory is available. BinsMax with default value of -1 indicates that Bins.Max call is made internally. The routine does not perform additional range checking, if BinsMax is provided explicitely (memory overwrite is possible).